package com.qiaofang.applet.service.property.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.qiaofang.applet.common.base.BaseDomain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 二手房（租/售/租售）主体信息
 */
@Data
@ApiModel("二手房（租/售/租售）主体信息")
@NoArgsConstructor
public class PropertyMain extends BaseDomain {

    @ApiModelProperty("房源唯一UUID")
    private String propertyUniqueUuid;

    @ApiModelProperty("房源UUID")
    private String propertyUuid;

    @ApiModelProperty("房源编号")
    private String propertyNo;

    @ApiModelProperty("区域UUID")
    private String districtUuid;

    @ApiModelProperty("商圈UUID")
    private String areaUuid;

    @ApiModelProperty("楼盘唯一UUID")
    private String estateUuid;

    @ApiModelProperty("楼盘唯一UUID")
    private String estateUniqueUuid;

    // todo 最终一致性
    @ApiModelProperty("区域名称")
    private String districtName;

    // todo 最终一致性
    @ApiModelProperty("商圈名称")
    private String areaName;

    // todo 最终一致性
    @ApiModelProperty("楼盘名称")
    private String estateName;

    @ApiModelProperty("标题")
    private String title;

    // todo 最终一致性
    @ApiModelProperty("房源主图")
    private String mainImageUrl;

    @ApiModelProperty("售价")
    private BigDecimal sellPrice;

    @ApiModelProperty("租价")
    private BigDecimal rentPrice;

    @ApiModelProperty("售单价")
    private BigDecimal sellUnitPrice;

    @ApiModelProperty("租单价")
    private BigDecimal rentUnitPrice;

    @ApiModelProperty("交易类型,租、售、租或售")
    private String tradeType;

    @ApiModelProperty("房")
    private Integer countF;

    @ApiModelProperty("厅")
    private Integer countT;

    @ApiModelProperty("卫")
    private Integer countW;

    @ApiModelProperty("阳台")
    private Integer countY;

    @ApiModelProperty("类型名称")
    private String usageTypeName;

    @ApiModelProperty("面积")
    private BigDecimal square;

    @ApiModelProperty("朝向，[东南西北]")
    private String direction;

    @ApiModelProperty("建房年代")
    private Integer completeYear;

    @ApiModelProperty("状态, 比如有效，无效，暂缓，成交")
    private String tradeStatus;

    @ApiModelProperty("归属员工1Uuid")
    private String employeeUuid1;

    @ApiModelProperty("归属员工2Uuid")
    private String employeeUuid2;

    @ApiModelProperty("归属员工3Uuid")
    private String employeeUuid3;

    @ApiModelProperty("权益方集合")
    private List<RightsInterests> rightsInterestsList;

    // todo 最终一致性
    @ApiModelProperty("归属员工1名称")
    private String employeeUuid1Name;

    // todo 最终一致性
    @ApiModelProperty("归属员工2名称")
    private String employeeUuid2Name;

    // todo 最终一致性
    @ApiModelProperty("归属员工3名称")
    private String employeeUuid3Name;

    // todo 最终一致性
    @ApiModelProperty("VRURL")
    private String vrUrl;

    // VR首图url todo 最终一致性
    private String vrImgUrl;
    //是否有VR todo 最终一致性

    // todo 最终一致性
    @ApiModelProperty("是否有VR")
    private Boolean existVr;

    @ApiModelProperty("video显示图片")
    private String coverPhotoUrl;

    @ApiModelProperty("video跳转地址")
    private String videoUrl;

    @ApiModelProperty("业主手机号")
    private String ownerPhone;

    @ApiModelProperty("部门1Uuid")
    private String deptUuid1;

    @ApiModelProperty("部门2Uuid")
    private String deptUuid2;

    @ApiModelProperty("部门3Uuid")
    private String deptUuid3;

    // todo 最终一致性
    @ApiModelProperty("部门1")
    private String deptName1;

    // todo 最终一致性
    @ApiModelProperty("部门2")
    private String deptName2;

    // todo 最终一致性
    @ApiModelProperty("部门3")
    private String deptName3;

    @ApiModelProperty("委托时间")
    private String delegateTime;

    @ApiModelProperty("是否删除")
    private Boolean deleted;

    @ApiModelProperty("是否开保护房")
    private Boolean protectedFlag;

    @ApiModelProperty("楼盘属性（0：公盘、1：私盘、2：特盘、3：封盘）")
    private Integer privy;

    @ApiModelProperty("经度")
    private Double lng;

    @ApiModelProperty("纬度")
    private Double lat;

    @ApiModelProperty(value = "上架/下架")
    private String upDownFlag;

    @ApiModelProperty(value = "手动上架时间")
    private Date manualUpTime;

    @ApiModelProperty("最后解析日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date lastSyncDate;

    @ApiModelProperty("上下架规则处理标识")
    private Boolean rulesHandle;
}
